package Ep03_HashTable._0202;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

/**
 * @author Jimmy Zhan WORKSTATION
 * @date 2023/3/14 9:03
 * 说明： 0202 快乐数，使用 HashSet数据结构
 * 求和的过程中，sum会重复出现，这对解题很重要！
 */

public class Mine {
    public boolean isHappy(int n) {
        if (n == 1){
            return true;
        }
        Set<Integer> hashSet = new HashSet<>();
        while (n != 1){
            hashSet.add(n);
            n = getSum(n);
            if (hashSet.contains(n)){
                return false;
            }
        }
        return true;
    }
    // 求各位数平方和
    public int getSum(int n){
        int num = 0;
        while (n != 0){
            num += (n % 10) * (n % 10);
            n /= 10;
        }
        return num;
    }
}
